package com.jy.wms.dao;

import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.*;
import feign.Param;

import java.util.List;
import java.util.Map;

/**
   * @ClassName: WmsPickingMapper.java
   * @Description: TODO(这里用一句话描述这个类的作用)
   * @Author syh
   * @Date Wed Oct 25 18:25:38 CST 2017
   */
   public interface WmsPickingMapper extends BaseDao<WmsPicking> {
    /**
     * 查询发运明细内的货品明细信息
     * @param map
     * @return
     */
    public List<WmsGoodsLocation> serachKw(Map<String, Object> map);

    /**
     * 查询库位类型
     * @param kwid
     * @return
     */
    public String searchKwlx(@Param("kwid") String kwid);
    /**
     * 查询货品名称
     * @param hpid
     * @return
     */
    public String searchHpmc(@Param("hpid") String hpid);
 /**
  * 规定日期下的 总出库数量
  * @param map
  * @return
  */
 public Integer getZckslSum(@Param("map") Map<String, Object> map);

    /**
     * 判断货主管理中“是否切箱”
     * @param sshzid
     * @return
     */
    public WmsPicking sechSfqx(@Param("sshzid") String sshzid);

 /**
  * 拿着订单明细id去联合装箱/分配表去查库存的集合数据
  * @param
  * @param
  * @param map
  * @return
  */
 public List<WmsPicking> seachKc(@Param("map") Map<String, Object> map);

 /**
  * 拿着订单明细id去查 分配表和库存的集合数据
  * @param map
  * @return
  */
 public List<WmsPicking> seachKc_s(@Param("map") Map<String, Object> map);
        /**
         * 把现在得到的总数,到库存表里用待下架数量和库存数量各自减掉去
         * @param
         * @param map
         * @return
         */
    public Integer updateSl(@Param("map") Map<String, Object> map);
     /**
      * //查询库存对象selectKc
      * @param kcid
      * @return
     */
    public WmsStock selectKc(@Param("kcid") String kcid);
     /**
     * 生成新库存
     * @param map
     * @return
     */
     public Integer insetNewKc(@Param("map") Map<String, Object> map);
        /**
         * 更改分配拣货人
         * @param map
         * @param
         * @return
         */
    public Integer updateFp(@Param("map") Map<String, Object> map);
    /**
     * 更改装货拣货人
     * @param map
     * @param
     * @return
     */
    public Integer updateZh(@Param("map") Map<String, Object> map);
       /**
        * 发运订单里的状态改为全部拣货
        * @param
        * @param map
        * @return
        */
   public Integer updateFy(@Param("map") Map<String, Object> map);
    /**
     * 根据发运订单编号-查询发运订单明细
     * @param map
     * @return
     */
    List<WmsShipmentOrderDetailed> searchOrderDetailed(@Param("map") Map<String, Object> map);

    /**
     * 根据发运订单编号-查询发运订单明细
     *
     * @param map
     * @return
     */
    List<WmsShipmentOrderDetailed> searchOrderDetailed1(@Param("map") Map<String, Object> map);
    /**
     * 更改发运订单明细状态为全部拣货"4",部分拣货为"3"
     * @param  map
     * @return
     */
    public Integer updateFymxzt(@Param("map") Map<String, Object> map);
    /**
     * 生成拣货记录
     * @param map
     * @return
     */
    public Integer insertPick(@Param("map") Map<String, Object> map);
    /**
     *用货品id查这个箱里的货品对应的包装明细类型为2的箱数量
     * @param map
     * @return
     */
    public WmsPackingDetailed searchPackingDetailed(@Param("map") Map<String, Object> map);
    /**
     * 用分配的id 查装箱的集合
     * @param ssfpid
     * @return
     */
    public List<WmsBox> selectZxjh(@Param("ssfpid") String ssfpid);
    /**
     * 拿订单明细id查拣货集合
     * @param
     * @param
     * @param
     * @return
     */
    public List<WmsPicking> seachJh(@Param("map") Map<String, Object> map);

    /**
     * 查询发运订单信息(生成拣货任务专用)
     *
     * @param map
     * @return
     */
    public List<WmsPicking> pickingTaskList(@Param("map") Map<String, Object> map);

    /**
     * 查询发运订单下的分配数据
     *
     * @param map1
     * @return
     */
    public List<WmsDistribution> searchDistribution(@Param("map") Map<String, Object> map1);
    /**
     * 用库存id和集货库位id查 新库存返回库存对象
     * @param
     * @param
     * @return
     */
    public WmsStock selectStock(@Param("map") Map<String, Object> map);
    /**
     * 更改拣货的发运状态
     * @param
     * @param map
     * @return
     */
    public Integer updateJhzt(@Param("map") Map<String, Object> map);
    /**
     * 更改新库存的数量
     * @param
     * @param map
     * @return
     */
    public Integer updateNewKcsl(@Param("map") Map<String, Object> map);
    /**
     * 更改发运订单明细发运状态以及（发运）箱单位数量
     * @param
     * @param
     * @param map
     * @return
     */
    public Integer updateMxfyzt(@Param("map") Map<String, Object> map);
    /**
     * 更改发运订单发运状态
     * @param
     * @param map
     * @return
     */
    public Integer updateDdfyzt(@Param("map") Map<String, Object> map);

 /**
  *
  * @param map
  * @return
  */
 public Integer searchDdMxSl1(@Param("map") Map<String, Object> map);

    /**
     * 查订单信息用id
     * @param id
     * @return
     */
    public WmsShipmentOrder selectDd(@Param("id") String id);
    /**
     * 判断是否存在待拣货数据
     * @param map
     * @return
     */
    public List<WmsShipmentOrder> dataJudgment(@Param("map") Map<String, Object> map);
    /**
     * 查询货主信息(生成拣货任务)
     *
     * @param hzid
     * @return
     */
    public WmsOwner searchWmsOwner(@Param("hzid") String hzid);

    /**
     * 查询发运订单下面的装箱的整箱数据
     *
     * @param map
     * @return
     */
    public List<WmsPickingTaskPda> searchBox(@Param("map") Map<String, Object> map);
    /**
     * 查询发运订单下面的装箱的散箱数据
     * @param map
     * @return
     */
    public List<WmsPickingTaskDps> searchBox2(@Param("map") Map<String, Object> map);

 /**
  * 查询客户集货库位id
  *
  * @param ydid
  * @return
  */
 public WmsPickingTaskPda searchKhjhkwid(@Param("ydid") String ydid);
 /**
  * 保存拣货任务进pda(生成拣货任务专用)
  *
  * @param map
  * @return
  */
 public Integer createPickingTask(@Param("map") Map<String, Object> map);

 /**
  * PDA消息表添加
  *
  * @param map
  * @return
  */
 public Integer saveMsg(@Param("map") Map<String, Object> map);
 /**
  * 保存拣货任务进Dps(生成拣货任务专用)
  *
  * @param map
  * @return
  */
 public Integer createPickingTask2(@Param("map") Map<String, Object> map);

 /**
  * 更改分配生成状态(生成拣货任务专用)
  *
  * @param map
  * @return
  */
 public Integer updateFp2(@Param("map") Map<String, Object> map);

 /**
  * 还原PDA数据(删除pda数据)(生成拣货任务专用)
  *
  * @param map
  * @return
  */
 public Integer deletePda(@Param("map") Map<String, Object> map);

 /**
  * 还原DPS数据(删除dps数据)(生成拣货任务专用)
  *
  * @param map
  * @return
  */
 public Integer deleteDps(@Param("map") Map<String, Object> map);

 /**
  * 查询发运订单下面的分配数据(PDA)(生成拣货任务专用)
  *
  * @param map
  * @return
  */
 public List<WmsPickingTaskPda> queryDistribution(@Param("map") Map<String, Object> map);

 /**
  * 查询发运订单下面的分配数据(DPS)(生成拣货任务专用)
  *
  * @param map
  * @return
  */
 public List<WmsPickingTaskDps> queryDistribution2(@Param("map") Map<String, Object> map);

 /**
  * 查询发运订单明细(生成拣货任务专用)
  *
  * @param map
  * @return
  */
 public List<WmsShipmentOrderDetailed> orderDetailed(@Param("map") Map<String, Object> map);

 /**
  * 更改发运订单状态
  *
  * @param map
  * @return
  */
 public Integer updateDdjhzt(@Param("map") Map<String, Object> map);

 /**
  * 查询装箱信息(分配ID)
  *
  * @param fpid
  * @return
  */
 public List<WmsBox> searchBox3(@Param("fpid") String fpid);
    /**
     * 查询装箱信息(分配ID)
     *
     * @param map
     * @return
     */
    public WmsBox searchBoxS(@Param("map") Map<String, Object> map);
 /**
  * 查询发运订单明细数据(发运订单明细id)
  *
  * @param id
  * @return
  */
 public WmsShipmentOrderDetailed searchDdMx(@Param("id") String id);

    /**
     * 查询供应商id
     * @param kcid
     * @return
     */
    public WmsStock selectGys(@Param("kcid") String kcid);

 /**
  * 查询发运订单数据(发运订单id)
  *
  * @param id
  * @return
  */
 public WmsShipmentOrder searchDd(@Param("id") String id);
 /**
  * 查询分配信息(传分配id)
  *
  * @param id
  * @return
  */
 public WmsDistribution searchFpMx(@Param("id") String id);

 /**
  * 统计发运订单明细数据
  *
  * @param map
  * @return
  */
 public WmsShipmentOrderDetailed searchDdMx2(@Param("map") Map<String, Object> map);

 /**
  * 打印分拣单查询
  * @param map
  * @return
  */
 public List<WmsPrintPicking> printPicking(@Param("map") Map<String, Object> map);

    /**
     * 打印分拣单查询2(统计主单位数量)
     * @param ssfyid
     * @return
     */
    public WmsPrintPicking printPicking2(@Param("ssfyid") String ssfyid);
 /**
  * 打印分拣单明细查询
  *
  * @param ssfyid
  * @return
  */
 public List<WmsPrintPickingDetail> printPickingDetailed(@Param("ssfyid") String ssfyid);

 /**
  * 打印合并分拣单查询
  *
  * @param map
  * @return
  */
 public WmsPrintPicking printMergePicking(@Param("map") Map<String, Object> map);

 /**
  * 获取货主集货库位
  *
  * @param hzid
  * @return
  */
 public WmsOwner searchWmsOwner2(@Param("hzid") String hzid);

 /**
  * 打印分拣单查询2(统计主单位数量)
  *
  * @param map
  * @return
  */
 public String printMergePicking2(@Param("map") Map<String, Object> map);

 /**
  * 打印合并分拣单明细查询
  *
  * @param map
  * @return
  */
 public List<WmsPrintPickingDetail> printMergePickingDetailed(@Param("map") Map<String, Object> map);

 /**
  * 打印合并分拣单明细查询备注信息
  *
  * @param map3
  * @return
  */
 public List<WmsPrintPickingDetail> printMergePickingDetailed2(@Param("map") Map<String, Object> map3);
 /**
  * 查看已完成拣货任务
  *
  * @param map
  * @return
  */
 public List<WmsPickingTask> seeCompleteTask(@Param("map") Map<String, Object> map);

 /**
  * 查看未完成拣货任务
  *
  * @param map
  * @return
  */
 public List<WmsPickingTask> notCompleteTask(@Param("map") Map<String, Object> map);

 /**
  * 整箱的拣货记录将不需要复核就可以发运(查询是否为整箱)
  *
  * @param zxid
  * @return
  */
 public WmsBox searchBox4(@Param("zxid") String zxid);

    /**
     * 传发运东单id查询装箱信息(发送短信专用)
     *
     * @param id
     * @return
     */
    public List<WmsBox> searchBoxMx(@Param("id") String id);

    /**
     * 查询库位数据
     *
     * @param kwid
     * @return
     */
    public WmsLibraryPosition searchKw(@Param("kwid") String kwid);

    /**
     * 查询货品信息
     *
     * @param hpid
     * @return
     */
    public WmsGoods searchHp(@Param("hpid") String hpid);
}
